﻿using System;
using System.Collections.Generic;


namespace DailyFx
{
	public enum Major
	{
		RowMajor,
		ColumnMajor,
	}

	public interface ISeries
	{
		

		/// <summary>
		///		How many fields of this series . 
		/// </summary>
		int Rank { get; }

		/// <summary>
		///		Gets the number of items .
		/// </summary>
		Int32 Length { get; }


		/// <summary>
		///		Gets the value at specified coord .
		/// </summary>
 		decimal this [ Int32 x, Int32 y ] { get; }
	}



	public interface ISeries<VarType> : ISeries, IEnumerable<VarType> // Column-Major, AoS type .
		where VarType : struct, IVariant
	{

		/// <summary>
		///     Get item at specified index .
		/// </summary>
		VarType  this [ int radix ] { get; set; }

		/// <summary>
		///     Gets item field value of specified index & id .
		/// </summary>
		new decimal this [ Int32 radix, Int32 field ] { get; set; }
	}

}
